home *** CD-ROM | disk | FTP | other *** search
- ' Caption: Open File|
- ' Hint: Open File|
- ' Icon: openfile.ico|
- '
- ' syn
- ' Copyright (C) 2000-2003, Ascher Stefan. All rights reserved.
- ' stievie@utanet.at, http://web.utanet.at/ascherst/
- '
- ' The contents of this file are subject to the Mozilla Public License
- ' Version 1.1 (the "License"); you may not use this file except in compliance
- ' with the License. You may obtain a copy of the License at
- ' http://www.mozilla.org/MPL/
- '
- ' Software distributed under the License is distributed on an "AS IS" basis,
- ' WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
- ' the specific language governing rights and limitations under the License.
- '
- ' The Original Code is openfile.vbs, released Sun, 26 May 2002 10:55:39 UTC.
- '
- ' The Initial Developer of the Original Code is Ascher Stefan.
- ' Portions created by Ascher Stefan are Copyright (C) 2000-2003 Ascher Stefan.
- ' All Rights Reserved.
- '
- ' Contributor(s): .
- '
- ' Alternatively, the contents of this file may be used under the terms of the
- ' GNU General Public License Version 2 or later (the "GPL"), in which case
- ' the provisions of the GPL are applicable instead of those above.
- ' If you wish to allow use of your version of this file only under the terms
- ' of the GPL and not to allow others to use your version of this file
- ' under the MPL, indicate your decision by deleting the provisions above and
- ' replace them with the notice and other provisions required by the GPL.
- ' If you do not delete the provisions above, a recipient may use your version
- ' of this file under either the MPL or the GPL.
- '
- ' You may retrieve the latest version of this file at the syn home page,
- ' located at http://syn.sourceforge.net/
- '
- ' $Id: openfile.vbs,v 1.4.2.5 2003/08/13 00:38:45 neum Exp $
-
-
- ' assumes the selected text is a (part of a) filename and opens it, example:
- ' select cmnfunc and run this script. This works also with forward slashed filenames
- ' as found in links, so you can use it to open links with it, like syn/ver2/index.htm.
- ' If SelText = "" it searchs for a valid filename at the caret pos.
-
- option explicit
-
- ' Remove the dot to include this files
- '#.include <consts>
- '#include <cmnfunc>
-
- dim BlankChars(13)
-
- sub Main(dummy)
- if Documents.Count = 0 then
- exit sub
- end if
- dim s
- s = ActiveDocument.SelText
- if s = "" then
- s = FindLink
- end if
- if not FileExists(s) then
- s = GetAbsoluteFile(ActiveDocument.FileName, s)
- end if
- if (not FileExists(s)) and (ExtractFileExt(s) = "") then
- s = s & ExtractFileExt(ActiveDocument.FileName)
- end if
- if FileExists(s) then
- Documents.Open false, s, false
- end if
- end sub
-
- function FindLink
- BlankChars(0) = "*"
- BlankChars(1) = "?"
- BlankChars(2) = "="
- BlankChars(3) = Chr(34)
- BlankChars(4) = "<"
- BlankChars(5) = ">"
- BlankChars(6) = ","
- BlankChars(7) = ";"
- BlankChars(8) = "+"
- BlankChars(9) = "^"
- BlankChars(10) = Chr(10)
- BlankChars(11) = Chr(13)
- BlankChars(12) = Chr(9)
- BlankChars(13) = " "
- dim x, y
- dim l
- x = ActiveDocument.CaretX
- y = ActiveDocument.CaretY
- l = ActiveDocument.Lines(y - 1) ' 0-based
- if Trim(l) = "" then exit function
- dim i
- dim p1, p2
- p1 = x
- p2 = x
- while not IsBlank(Mid(l, p1, 1)) and (p1 >= 0)
- p1 = p1 - 1
- wend
- while not IsBlank(Mid(l, p2, 1)) and (p2 <= Len(l))
- p2 = p2 + 1
- wend
- if p1 < p2 then
- FindLink = Mid(l, p1 + 1, p2 - p1 - 1)
- end if
- end function
-
- function IsBlank(s)
- dim i
- IsBlank = false
- for i = 0 to UBound(BlankChars)
- if s = BlankChars(i) then
- IsBlank = true
- exit for
- end if
- next
- end function
-